$(function () {
    var g_Timer = new Array();  //时间控件数组

    function beat(obj, nn) {
        //随机数
        var num = Math.floor(Math.random() * nn);
        if (action.options.mode) {
            obj.html(action.options.all_data[num]);
        } else {
            obj.html(action.options.surplus_data[num]);
        }
    }


    //小米抽奖对象
    function michoujiang() {
        this.options = {
            status: false, //开始结束状态  false结束 true-开始中
            mode: false, //抽奖模式
            div_body: $(".body"), //整体区域
            div_code: $(".code_div"), //号码区域
            div_code_text: $(".code_text"), //号码
            select_num: $("[name=num]"), //抽奖数量选择下拉
            input_mode: $("[name=mode]"), //抽奖模式
            num: 1, //当前抽奖数量
            btn_begin: $("[name=btn_begin]"), //开始按钮事件
            btn_stop: $("[name=btn_stop]"), //停止按钮事件
            sum_users: 0, //总参与人数
            surplus_users: 0, //剩余人数
			already_users:0, //中奖人数
            all_data: "", //全部抽奖数据
            surplus_data: "", //剩余人员名单
            last_submit:0, //最后一次提交时间  防止短时间内重复提交
        };
    }

    //初始化
    michoujiang.prototype.init = function () {
        var _this = this;
        //内容区域高度
        this.options.div_body.css({"width": glob.content_div_width, "height": glob.content_div_height});
        //抽奖区域高度
        div_body_height = this.options.div_body.height() - glob.code_div_top - 10;
        //抽奖区域高度
        this.options.div_code.css({"width": glob.content_div_width, "height": div_body_height, "top": glob.code_div_top + "px"});
        //浏览器标题
        $("title").html(glob.browser_title);
        //抽奖区域默认文字
        this.options.div_code_text.html(glob.default_txt);
        //开始按钮
        this.options.btn_begin.click(function () {
            _this.btn_action();
        });
        
        this.options.btn_stop.click(function () {
            _this.btn_action();
        });
        
        this.options.btn_stop.hide();

        this.init_data();
        //选择抽奖数量
        this.options.select_num.change(function () {
            _this.select_num_change();
        });
        
        this.options.last_submit=0;
        
        //绑定键盘快捷键
        this.bind_keyboard();
    }
    //进行抽奖数据的初始化
    michoujiang.prototype.init_data = function () {
        var _this = this;
        $.ajax({
            type: "GET", //请求方式
            url: glob.server_url + "/init",
            data: {}, //数据
            dataType: 'jsonp', //返回数据类型
            cache: false, //是否缓存
            timeout: 5000, //超时时间
            success: function (data) {
                //成功后执行
                _this.options.sum_users = data.sum;
                _this.options.surplus_users = data.ssum;
				_this.options.already_users = data.already_num;
                _this.options.all_data = data.data;
                _this.options.surplus_data = data.data;
                _this.users_num_view();
            },
            error: function () {
                alert("抽奖互动初始化失败，请检查服务端是否运行！");
                return false;
            }
        });
    }
    //处理总人数和剩余人数显示
    michoujiang.prototype.users_num_view = function () {
        var _this = this;
        $("#surplus_users").html(_this.options.surplus_users);
		$("#already_users").html(_this.options.already_users);
        $("#sum_users").html(_this.options.sum_users);
    }


    //绑定回车和空格事件
    michoujiang.prototype.bind_keyboard = function () {
        var _this = this;
        //回车按键
        $(window).keydown(function (event) {
            if (event.keyCode == "13" || event.keyCode == "32") {
                _this.btn_action();
            }
        });
    }

    //处理下拉改变事件
    michoujiang.prototype.select_num_change = function () {
        this.options.num = this.options.select_num.val();
        this.clear_code_div();
        this.display_code_text();
    }
    //显示抽奖条
    michoujiang.prototype.display_code_text = function () {
        var div = new Array();
        for (var i = 0; i < this.options.num; i++) {
            div[i] = $("<div class='code_text'></div>").append(glob.default_txt);
            div[i].appendTo(this.options.div_code);
        }
    }
    //清除抽奖区域
    michoujiang.prototype.clear_code_div = function () {
        this.options.div_code.html("");
    }
    //检测是否为二次重复提交
    michoujiang.prototype.check_submit=function(){
        var nowtime=new Date().getTime();
        //1秒内不能重复提交
        if(this.options.last_submit+1500>nowtime){
           alert("重复提交");
            return true;
        }
        this.options.last_submit=nowtime;
    }

    michoujiang.prototype.btn_action = function () {
        var _this = this;
        //检测重复提交
        if(_this.check_submit()){
            return false;
        }
        
        var mode = this.options.input_mode.is(":checked");
        this.options.mode = mode;

        if (!mode && this.options.surplus_users <= 0) {
            alert("所有用户已经全部中奖，如需继续抽奖，请使用全员抽取模式！");
            return false;
        }

        if (mode) {
            ssss = _this.options.all_data.length;
        } else {
            ssss = _this.options.surplus_data.length;
        }

        //是否抽奖运行状态
        if (this.options.status) {
            //抽奖状态
            this.options.input_mode.removeAttr("disabled");
            this.options.status = false;
            
            this.options.btn_begin.show();
            this.options.btn_stop.hide();

            for (var i = 0; i < this.options.num; i++) {
                clearInterval(g_Timer[i]);
            }
            this.Luck_draw();

        } else {
            
            if(!mode && this.options.num>this.options.surplus_users){
                alert("无法进行抽奖，抽奖数量大于候选人数！");
                return false;
            }
            
            this.options.status = true;
            this.options.input_mode.attr("disabled","disabled");
            this.options.btn_begin.hide();
            this.options.btn_stop.show();

            list = this.options.div_code.children();

            $.each(list, function (n, c) {
                g_Timer[n] = setInterval(function () {
                    beat($(c), ssss);
                }, glob.speed_code);
            });
        }
    }

    //进行服务端抽奖操作
    michoujiang.prototype.Luck_draw = function () {
        var _this=this;
		
		list = _this.options.div_code.children();
		list.html(glob.default_txt);
        
        if(_this.options.mode){
            mode=1;
        }else{
            mode=0;
        }
        
        $.ajax({
            type: "GET", //请求方式
            url: glob.server_url + "/get_rand",
            data:{type:mode,num:_this.options.num}, //数据
            dataType: 'jsonp', //返回数据类型
            cache: false, //是否缓存
            timeout:3000, //超时时间
            success: function (data) {
                if(data.err==1){
                    alert("本次抽奖发生错误："+data.err_msg);
                    return false;
                }
                //成功后执行
//                alert(data.surplus);
                //成功后执行
                _this.options.surplus_users = data.surplus;
                _this.options.surplus_data = data.surplus_data;
				_this.options.already_users = data.already_num;
                _this.users_num_view();
                
                list = _this.options.div_code.children();
                
                for (var i = 0; i <data.data.length; i++) {
                    $(list[i]).html(data.data[i]);
                }
            },
            error: function () {
                alert("抽奖异常错误！");
            }
        });
    }


    var action = new michoujiang();

    //进行初始化
    action.init();

});